package 蓝桥._14届.高塔;

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int mod = 392149233;
        int n = scan.nextInt();
        long m = scan.nextLong();
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = scan.nextInt();
        }
        // 求所有可能情况
        // dp[i][j]: 第i回合结束且拥有能量j的楼层的所有情况数
        int[][] dp = new int[n][(int) (m+1)];
        // 初始化
        for(int i=0;i<m;i++)
            dp[0][i]=1;

        // dp[i][j] = dp[i-1][j+1,...,m] 的和

        for(int i =1;i<n;i++){
            for (int j = 0; j < m - i; j++) {
                for (int k = j + 1; k <= m; k++) {
                    // 当前轮结束还要剩余j点能量, 那上一轮至少要剩余 j+1点
                    dp[i][j] = (dp[i][j] + dp[i-1][k]*(k-j)*a[i])%mod;
                }
            }
        }

        int sum=0;
        // 最左边一列 + 最下面一行 的和
        for(int i=0;i<n;i++){
            sum = (sum + dp[i][0])%mod;
        }
        for (int i = 1; i <= m; i++) {
            sum = (sum + dp[n-1][i])%mod;
        }
        //392149233

        //253629769

        System.out.println(sum);


        scan.close();
    }
}